{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "# Various torch packages\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "\n",
    "# torchvision\n",
    "from torchvision import datasets, transforms\n",
    "\n",
    "# ------------------------\n",
    "# get up one directory \n",
    "import sys, os\n",
    "sys.path.append(os.path.abspath('../'))\n",
    "# ------------------------\n",
    "\n",
    "# custom packages\n",
    "import models.aux_funs as maf\n",
    "import optimizers as op\n",
    "import regularizers as reg\n",
    "import train\n",
    "import math\n",
    "import utils.configuration as cf\n",
    "import utils.datasets as ud\n",
    "from models.fully_connected import fully_connected"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Fix the random seed"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "random_seed = 2\n",
    "cf.seed_torch(random_seed)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Configure the experiment"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "sparse_init = 0.01\n",
    "r = [1,0.7/math.sqrt(sparse_init)]\n",
    "\n",
    "conf_args = {#\n",
    "    # data specification\n",
    "    'data_file':\"../../Data\", 'train_split':0.95, 'data_set':\"MNIST\", 'download':False,\n",
    "    # cuda\n",
    "    'use_cuda':True, 'num_workers':4, 'cuda_device':0, 'pin_memory':True, 'train_split':0.95,\n",
    "    #\n",
    "    'epochs':30,\n",
    "    # optimizer\n",
    "    'delta':1.0, 'lr':0.1, 'lamda':1e-3, 'optim':\"LinBreg\",'beta':0.0,\n",
    "    # initialization\n",
    "    'sparse_init':sparse_init, 'r':r,\n",
    "    # misc\n",
    "    'random_seed':random_seed, 'eval_acc':True,\n",
    "    # precondtioner\n",
    "    'Preconditioner': \"Symm\", 'epsilon':1e-4,\n",
    "}\n",
    "\n",
    "conf = cf.Conf(**conf_args)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Initiate the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "model_kwargs = {'mean':conf.data_set_mean, 'std':conf.data_set_std}    \n",
    "\n",
    "sizes = [784, 200, 80, 10]\n",
    "act_fun = torch.nn.ReLU()\n",
    "    \n",
    "model = fully_connected(sizes, act_fun, **model_kwargs)\n",
    "best_model = train.best_model(fully_connected(sizes, act_fun, **model_kwargs).to(conf.device))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Weight initialization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "model_kwargs = {'mean':conf.data_set_mean, 'std':conf.data_set_std}    \n",
    "def init_weights(conf, model):\n",
    "    # sparsify\n",
    "    maf.sparse_bias_uniform_(model, 0,conf.r[0])\n",
    "    maf.sparse_weight_normal_(model, conf.r[1])\n",
    "    \n",
    "    maf.sparsify_(model, conf.sparse_init)\n",
    "    model = model.to(conf.device)\n",
    "    return model\n",
    "\n",
    "model = init_weights(conf,model)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Optimizer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "def init_opt(conf, model):\n",
    "    weights_linear = maf.get_weights_linear(model)\n",
    "    biases = maf.get_bias(model)\n",
    "\n",
    "    if conf.optim == \"SGD\":\n",
    "        opt = torch.optim.SGD(model.parameters(), lr=conf.lr, momentum=conf.beta)\n",
    "    elif conf.optim == \"LinBreg\":\n",
    "        opt = op.LinBreg([{'params': weights_linear, 'lr' : conf.lr, 'reg' : reg.reg_l1(lamda=conf.lamda), 'momentum':conf.beta, 'delta':conf.delta},\n",
    "                          {'params': biases, 'lr': conf.lr, 'momentum':conf.beta}])\n",
    "    elif conf.optim == \"adam\":\n",
    "        opt = op.AdaBreg([{'params': weights_linear, 'lr' : conf.lr, 'reg' : reg.reg_l1(lamda=conf.lamda)},\n",
    "                          {'params': biases, 'lr': conf.lr}])\n",
    "    elif conf.optim == \"ProxSGD\":\n",
    "        opt = op.ProxSGD([{'params': weights_linear, 'lr' : conf.lr, 'reg' : reg.reg_l1(lamda=conf.lamda)},\n",
    "                          {'params': biases, 'lr': conf.lr}])\n",
    "    elif conf.optim == \"PreLinBreg\":\n",
    "        opt = op.PreLinBreg([{'params': weights_linear, 'lr' : conf.lr, 'reg' : reg.reg_l1(lamda=conf.lamda), 'delta':conf.delta, 'Preconditioner': conf.Preconditioner, 'epsilon':conf.epsilon},\n",
    "                          {'params': biases, 'lr': conf.lr}])\n",
    "    else:\n",
    "        raise ValueError(\"Unknown Optimizer specified\")\n",
    "\n",
    "    # learning rate scheduler\n",
    "    scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(opt, factor=0.5, patience=5,threshold=0.01)\n",
    "    \n",
    "    return opt, scheduler"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_loader, valid_loader, test_loader = ud.get_data_set(conf)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# History and Runs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Initialize history\n",
    "tracked = ['acc', 'loss', 'linear_sparse', 'reg_vals']\n",
    "\n",
    "def reset_hist(tracked):\n",
    "    train_hist = {}\n",
    "    val_hist = {}\n",
    "    return train_hist, val_hist\n",
    "\n",
    "# Initialize runs\n",
    "params = [\n",
    "    # LinBreg Runs\n",
    "    {'optim': 'LinBreg','reps':2, 'lamda': 1e-3, 'random_seed':0, 'label':'LinBreg ($\\lambda=1$e-3)'}, # LinBreg, lamda:1e-3\n",
    "    {'optim': 'PreLinBreg','reps':2, 'lamda': 1e-3, 'random_seed':0, 'label':'PreLinBreg ($\\lambda=1$e-3)'}, # PreLinBreg, lamda:1e-3\n",
    "    # SGD Runs (Equivalent to LinBreg with lamda = 0.0)\n",
    "    {'optim': 'LinBreg','reps':2, 'lamda': 0.0, 'random_seed':0, 'label':'SGD'}, # SGD\n",
    "    # ProxGD Runs\n",
    "    {'optim': 'ProxSGD','reps':2, 'lamda': 1e-4, 'random_seed':0, 'label':'ProxSDG ($\\lambda=1$e-4)'}, # ProxSGD, lamda:1e-4\n",
    "]\n",
    "\n",
    "runs = cf.run(params)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 0\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.8588771929824561\n",
      "Train Loss: 205.75590240210295\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.931\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.4554205069124424\n",
      "Overall sparsity: 0.4554205069124424\n",
      "Node sparsity: [1.0, 0.875, 1.0]\n",
      "Regularization values per group: [1.04899755859375, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 1\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9424561403508772\n",
      "Train Loss: 87.42314033955336\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9466666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5372004608294931\n",
      "Overall sparsity: 0.5372004608294931\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [1.2499800796508789, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 2\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9588245614035088\n",
      "Train Loss: 62.999416172504425\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.957\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6011175115207373\n",
      "Overall sparsity: 0.6011175115207373\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [1.4147224960327152, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 3\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9673157894736842\n",
      "Train Loss: 48.46495916880667\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9403333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6485541474654378\n",
      "Overall sparsity: 0.6485541474654378\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [1.5563551025390625, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 4\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9734736842105263\n",
      "Train Loss: 38.71122563350946\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9693333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6777534562211982\n",
      "Overall sparsity: 0.6777534562211982\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [1.6775988197326661, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 5\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.978140350877193\n",
      "Train Loss: 31.415697834454477\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9723333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7072983870967742\n",
      "Overall sparsity: 0.7072983870967742\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [1.7843640785217283, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 6\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9813508771929824\n",
      "Train Loss: 26.60186432581395\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.964\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7256509216589861\n",
      "Overall sparsity: 0.7256509216589861\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [1.8777295303344725, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 7\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.984578947368421\n",
      "Train Loss: 22.11012182570994\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.972\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7373617511520737\n",
      "Overall sparsity: 0.7373617511520737\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [1.962019302368164, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 8\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9876140350877193\n",
      "Train Loss: 18.197294532787055\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9686666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7412557603686636\n",
      "Overall sparsity: 0.7412557603686636\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.0395951538085937, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 9\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9896140350877193\n",
      "Train Loss: 15.331029690452851\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.974\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7533352534562212\n",
      "Overall sparsity: 0.7533352534562212\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.1119759216308593, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 10\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9919473684210526\n",
      "Train Loss: 12.509435799205676\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.977\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7624596774193548\n",
      "Overall sparsity: 0.7624596774193548\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.1737267608642576, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 11\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9936315789473684\n",
      "Train Loss: 10.39971767226234\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.976\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7642684331797235\n",
      "Overall sparsity: 0.7642684331797235\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.229343185424805, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 12\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9944912280701754\n",
      "Train Loss: 8.91915180918295\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9796666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7755875576036866\n",
      "Overall sparsity: 0.7755875576036866\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.2801818084716796, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 13\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9961754385964913\n",
      "Train Loss: 7.06835615466116\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9773333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7778629032258064\n",
      "Overall sparsity: 0.7778629032258064\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.3236822280883787, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 14\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9972631578947369\n",
      "Train Loss: 5.7428806002717465\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9693333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7818433179723502\n",
      "Overall sparsity: 0.7818433179723502\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.3646440963745117, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 15\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9975964912280701\n",
      "Train Loss: 4.895235130796209\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.976\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7776785714285714\n",
      "Overall sparsity: 0.7776785714285714\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.3987474060058593, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 16\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9984736842105263\n",
      "Train Loss: 4.000778645277023\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.979\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.786036866359447\n",
      "Overall sparsity: 0.786036866359447\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.4290859451293945, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 17\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9991754385964913\n",
      "Train Loss: 2.9471011859714054\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9793333333333333\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7875748847926267\n",
      "Overall sparsity: 0.7875748847926267\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.4547601013183593, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 18\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9994736842105263\n",
      "Train Loss: 2.27080790096079\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9796666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.78625\n",
      "Overall sparsity: 0.78625\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.475544387817383, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 19\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9996491228070176\n",
      "Train Loss: 1.9113160184642766\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.979\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7861808755760369\n",
      "Overall sparsity: 0.7861808755760369\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.492294677734375, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 20\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9997017543859649\n",
      "Train Loss: 1.5804964691196801\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9813333333333333\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7885771889400922\n",
      "Overall sparsity: 0.7885771889400922\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.508068511962891, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 21\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9998771929824561\n",
      "Train Loss: 1.367866967775626\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.979\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7905645161290322\n",
      "Overall sparsity: 0.7905645161290322\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.5211272125244144, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 22\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9998947368421053\n",
      "Train Loss: 1.2072098615171853\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9803333333333333\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.789418202764977\n",
      "Overall sparsity: 0.789418202764977\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.5332082595825196, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 23\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999122807017544\n",
      "Train Loss: 1.0622580709459726\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9803333333333333\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.791036866359447\n",
      "Overall sparsity: 0.791036866359447\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.54376335144043, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 24\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999298245614036\n",
      "Train Loss: 1.0048766818945296\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9806666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.792044930875576\n",
      "Overall sparsity: 0.792044930875576\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.554023178100586, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 25\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999298245614036\n",
      "Train Loss: 0.9021252825914416\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.98\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7925115207373272\n",
      "Overall sparsity: 0.7925115207373272\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.563217346191406, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 26\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999298245614036\n",
      "Train Loss: 0.838228676104336\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9806666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7948041474654378\n",
      "Overall sparsity: 0.7948041474654378\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.571865447998047, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 27\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999298245614036\n",
      "Train Loss: 0.7802301501942566\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9803333333333333\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7939746543778802\n",
      "Overall sparsity: 0.7939746543778802\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.579741836547852, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 28\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999298245614036\n",
      "Train Loss: 0.7325160952750593\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.981\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7957315668202765\n",
      "Overall sparsity: 0.7957315668202765\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.5876121673583983, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 29\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999298245614036\n",
      "Train Loss: 0.6873341721802717\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.981\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7974769585253456\n",
      "Overall sparsity: 0.7974769585253456\n",
      "Node sparsity: [1.0, 0.925, 1.0]\n",
      "Regularization values per group: [2.594668098449707, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 0\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.8656140350877193\n",
      "Train Loss: 192.97762727737427\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.911\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.4617684331797235\n",
      "Overall sparsity: 0.4617684331797235\n",
      "Node sparsity: [1.0, 0.95, 1.0]\n",
      "Regularization values per group: [1.0662893142700196, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 1\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9448771929824561\n",
      "Train Loss: 82.82020004093647\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9486666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5264228110599078\n",
      "Overall sparsity: 0.5264228110599078\n",
      "Node sparsity: [1.0, 0.95, 1.0]\n",
      "Regularization values per group: [1.2615059585571289, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 2\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9597192982456141\n",
      "Train Loss: 60.21137621253729\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9606666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5799308755760368\n",
      "Overall sparsity: 0.5799308755760368\n",
      "Node sparsity: [1.0, 0.95, 1.0]\n",
      "Regularization values per group: [1.4137647171020506, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 3\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9687543859649123\n",
      "Train Loss: 46.52507012337446\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.967\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6131163594470046\n",
      "Overall sparsity: 0.6131163594470046\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [1.5432629203796386, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 4\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9745263157894737\n",
      "Train Loss: 37.70998624712229\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9743333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6449481566820277\n",
      "Overall sparsity: 0.6449481566820277\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [1.6544423370361327, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 5\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9788771929824561\n",
      "Train Loss: 31.067303352989256\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.97\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6639976958525345\n",
      "Overall sparsity: 0.6639976958525345\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [1.7523622627258302, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 6\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9818421052631578\n",
      "Train Loss: 25.883667125366628\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9626666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6811520737327189\n",
      "Overall sparsity: 0.6811520737327189\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [1.8397614593505862, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 7\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.985280701754386\n",
      "Train Loss: 21.854595417622477\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9743333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6975345622119815\n",
      "Overall sparsity: 0.6975345622119815\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [1.9218473243713379, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 8\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9871578947368421\n",
      "Train Loss: 18.702667084289715\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9523333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7006739631336405\n",
      "Overall sparsity: 0.7006739631336405\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [1.9982710189819335, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 9\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.989\n",
      "Train Loss: 15.865646267542616\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.969\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7107315668202765\n",
      "Overall sparsity: 0.7107315668202765\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.065532440185547, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 10\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9912982456140351\n",
      "Train Loss: 13.113767482922412\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.978\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7200633640552996\n",
      "Overall sparsity: 0.7200633640552996\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.1263973388671875, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 11\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9938070175438597\n",
      "Train Loss: 10.477448933525011\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.97\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7247350230414746\n",
      "Overall sparsity: 0.7247350230414746\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.1809906005859374, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 12\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9948771929824561\n",
      "Train Loss: 8.716936484212056\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.977\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7289746543778802\n",
      "Overall sparsity: 0.7289746543778802\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.227577926635742, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 13\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9959298245614036\n",
      "Train Loss: 7.2608351757517084\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9756666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7385944700460829\n",
      "Overall sparsity: 0.7385944700460829\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.2704945297241212, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 14\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9971929824561403\n",
      "Train Loss: 6.139511233661324\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.918\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7402016129032258\n",
      "Overall sparsity: 0.7402016129032258\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.3069108810424805, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 15\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9976842105263158\n",
      "Train Loss: 5.177591926709283\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9783333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7435599078341014\n",
      "Overall sparsity: 0.7435599078341014\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.340985778808594, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 16\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9985438596491228\n",
      "Train Loss: 4.058856193558313\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9796666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7424020737327189\n",
      "Overall sparsity: 0.7424020737327189\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.3700832061767576, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 17\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9987543859649123\n",
      "Train Loss: 3.500244428170845\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9773333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7441647465437788\n",
      "Overall sparsity: 0.7441647465437788\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.3955928649902343, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 18\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9991754385964913\n",
      "Train Loss: 2.8057335888734087\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.98\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7426324884792627\n",
      "Overall sparsity: 0.7426324884792627\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.4167170410156253, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 19\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9993684210526316\n",
      "Train Loss: 2.372055940097198\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.979\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7484735023041474\n",
      "Overall sparsity: 0.7484735023041474\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.4368825683593753, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 20\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9996842105263158\n",
      "Train Loss: 1.9787769877293613\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9813333333333333\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7473617511520737\n",
      "Overall sparsity: 0.7473617511520737\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.4528836517333987, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 21\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9996315789473684\n",
      "Train Loss: 1.741750186367426\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9803333333333333\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7476440092165899\n",
      "Overall sparsity: 0.7476440092165899\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.468637771606445, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 22\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9997368421052631\n",
      "Train Loss: 1.5169330641801935\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9783333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7475\n",
      "Overall sparsity: 0.7475\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.480280990600586, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 23\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9997543859649123\n",
      "Train Loss: 1.345801061092061\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.98\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7491301843317972\n",
      "Overall sparsity: 0.7491301843317972\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.4928023834228514, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 24\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9998070175438597\n",
      "Train Loss: 1.21707736022654\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9816666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7501785714285715\n",
      "Overall sparsity: 0.7501785714285715\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.5040916290283204, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 25\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.999859649122807\n",
      "Train Loss: 1.0740786511742044\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9796666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7503398617511521\n",
      "Overall sparsity: 0.7503398617511521\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.5138716888427735, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 26\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9998947368421053\n",
      "Train Loss: 0.9609480855870061\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9806666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7525748847926267\n",
      "Overall sparsity: 0.7525748847926267\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.523084526062012, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 27\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9998947368421053\n",
      "Train Loss: 0.9069493546121521\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.98\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.752626728110599\n",
      "Overall sparsity: 0.752626728110599\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.5310398635864257, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 28\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999122807017544\n",
      "Train Loss: 0.839267520874273\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.98\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7539170506912443\n",
      "Overall sparsity: 0.7539170506912443\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.5391257934570315, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 29\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999122807017544\n",
      "Train Loss: 0.7779004346375586\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9813333333333333\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7544412442396313\n",
      "Overall sparsity: 0.7544412442396313\n",
      "Node sparsity: [1.0, 0.9625, 1.0]\n",
      "Regularization values per group: [2.54657551574707, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 0\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.7926491228070175\n",
      "Train Loss: 293.04726319015026\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.8916666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.022851382488479264\n",
      "Overall sparsity: 0.022851382488479264\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [65.97488136291504, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 1\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9089824561403509\n",
      "Train Loss: 137.36473342776299\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.915\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.02773041474654378\n",
      "Overall sparsity: 0.02773041474654378\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [70.35990753173829, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 2\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9247017543859649\n",
      "Train Loss: 114.47367212921381\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9176666666666666\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.0313536866359447\n",
      "Overall sparsity: 0.0313536866359447\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [74.23123626708984, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 3\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9354561403508772\n",
      "Train Loss: 98.92400410026312\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.928\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.03414170506912442\n",
      "Overall sparsity: 0.03414170506912442\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [77.42332801818849, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 4\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9417368421052632\n",
      "Train Loss: 87.88405656814575\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9313333333333333\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.03684907834101382\n",
      "Overall sparsity: 0.03684907834101382\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [80.45683212280275, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 5\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9476666666666667\n",
      "Train Loss: 78.85296374559402\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9443333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.038675115207373274\n",
      "Overall sparsity: 0.038675115207373274\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [83.12009811401369, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 6\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.952859649122807\n",
      "Train Loss: 70.96609800681472\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9513333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.04101958525345622\n",
      "Overall sparsity: 0.04101958525345622\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [85.86797981262208, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 7\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.957421052631579\n",
      "Train Loss: 64.15081660822034\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.938\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.04314516129032258\n",
      "Overall sparsity: 0.04314516129032258\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [88.5458881378174, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 8\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9600701754385965\n",
      "Train Loss: 59.1906304564327\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9456666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.045391705069124426\n",
      "Overall sparsity: 0.045391705069124426\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [91.00757675170898, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 9\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9640877192982457\n",
      "Train Loss: 53.946225641295314\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9606666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.0473963133640553\n",
      "Overall sparsity: 0.0473963133640553\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [93.43260231018067, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 10\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9672982456140351\n",
      "Train Loss: 49.668661698699\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.959\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.0491647465437788\n",
      "Overall sparsity: 0.0491647465437788\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [95.72771492004395, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 11\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9687543859649123\n",
      "Train Loss: 46.59313459787518\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9636666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.050858294930875576\n",
      "Overall sparsity: 0.050858294930875576\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [98.10249862670901, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 12\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9710175438596491\n",
      "Train Loss: 43.15888452064246\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.952\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.0526094470046083\n",
      "Overall sparsity: 0.0526094470046083\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [100.39143295288086, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 13\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9729824561403508\n",
      "Train Loss: 40.47173955664039\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9633333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.054222350230414745\n",
      "Overall sparsity: 0.054222350230414745\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [102.51749534606934, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 14\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9750526315789474\n",
      "Train Loss: 38.07977761607617\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.958\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.05546658986175115\n",
      "Overall sparsity: 0.05546658986175115\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [104.52455444335939, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 15\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9769122807017544\n",
      "Train Loss: 35.77817821968347\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.946\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.05684331797235023\n",
      "Overall sparsity: 0.05684331797235023\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [106.49391632080079, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 16\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9776491228070175\n",
      "Train Loss: 33.42068654950708\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9686666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.05814516129032258\n",
      "Overall sparsity: 0.05814516129032258\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [108.53643188476563, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 17\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9789298245614035\n",
      "Train Loss: 31.4044720553793\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9706666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.059867511520737327\n",
      "Overall sparsity: 0.059867511520737327\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [110.49655952453614, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 18\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9803333333333333\n",
      "Train Loss: 29.49542269203812\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9693333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.06141129032258064\n",
      "Overall sparsity: 0.06141129032258064\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [112.43408050537111, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 19\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9817368421052631\n",
      "Train Loss: 27.79380456637591\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9723333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.06271313364055299\n",
      "Overall sparsity: 0.06271313364055299\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [114.42440910339357, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 20\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9821228070175438\n",
      "Train Loss: 26.19556614663452\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.973\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.06414170506912442\n",
      "Overall sparsity: 0.06414170506912442\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [116.27753372192385, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 21\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.983719298245614\n",
      "Train Loss: 24.26782253710553\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9733333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.06539746543778802\n",
      "Overall sparsity: 0.06539746543778802\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [118.18540802001954, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 22\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.984280701754386\n",
      "Train Loss: 23.225559280719608\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9553333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.0666647465437788\n",
      "Overall sparsity: 0.0666647465437788\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [120.16181716918946, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 23\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9853859649122807\n",
      "Train Loss: 21.666425307281315\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9733333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.06830645161290323\n",
      "Overall sparsity: 0.06830645161290323\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [122.09040527343751, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 24\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9865438596491228\n",
      "Train Loss: 20.40748656447977\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.971\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.06951612903225807\n",
      "Overall sparsity: 0.06951612903225807\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [123.95492706298829, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 25\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9868421052631579\n",
      "Train Loss: 19.112544402480125\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9733333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.07070276497695853\n",
      "Overall sparsity: 0.07070276497695853\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [125.7668182373047, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 26\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9880175438596491\n",
      "Train Loss: 17.73565818206407\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.972\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.07202764976958526\n",
      "Overall sparsity: 0.07202764976958526\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [127.8116485595703, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 27\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9884736842105263\n",
      "Train Loss: 16.927102340385318\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9733333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.07350806451612903\n",
      "Overall sparsity: 0.07350806451612903\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [129.64254531860354, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 28\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9898421052631579\n",
      "Train Loss: 15.413372345035896\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.966\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.07459677419354839\n",
      "Overall sparsity: 0.07459677419354839\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [131.5343200683594, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 29\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9900701754385965\n",
      "Train Loss: 14.556549058645032\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.969\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.07585253456221198\n",
      "Overall sparsity: 0.07585253456221198\n",
      "Node sparsity: [1.0, 0.9, 1.0]\n",
      "Regularization values per group: [133.35672454833986, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 0\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.6961578947368421\n",
      "Train Loss: 436.80462270975113\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.8583333333333333\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.025789170506912443\n",
      "Overall sparsity: 0.025789170506912443\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [68.26251945495605, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 1\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.8938771929824562\n",
      "Train Loss: 228.1773901283741\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.893\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.029879032258064517\n",
      "Overall sparsity: 0.029879032258064517\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [72.60939102172853, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 2\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9138947368421053\n",
      "Train Loss: 204.91269738972187\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9106666666666666\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.033911290322580646\n",
      "Overall sparsity: 0.033911290322580646\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [76.40354232788087, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 3\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9267719298245614\n",
      "Train Loss: 189.2809021770954\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9196666666666666\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.03734447004608295\n",
      "Overall sparsity: 0.03734447004608295\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [79.93701515197756, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 4\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9366842105263158\n",
      "Train Loss: 177.3901801109314\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.936\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.04026497695852534\n",
      "Overall sparsity: 0.04026497695852534\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [83.34471893310548, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 5\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9443333333333334\n",
      "Train Loss: 168.68692606687546\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9346666666666666\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.0430184331797235\n",
      "Overall sparsity: 0.0430184331797235\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [86.43758468627931, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 6\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9489824561403509\n",
      "Train Loss: 162.05664080381393\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9423333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.04542626728110599\n",
      "Overall sparsity: 0.04542626728110599\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [89.30050010681154, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 7\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9553684210526315\n",
      "Train Loss: 156.56668838858604\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9493333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.047776497695852536\n",
      "Overall sparsity: 0.047776497695852536\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [91.90711097717286, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 8\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9587719298245614\n",
      "Train Loss: 152.33985076844692\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9473333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.05\n",
      "Overall sparsity: 0.05\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [94.55834579467775, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 9\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9618070175438597\n",
      "Train Loss: 148.22923444211483\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9476666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.0522926267281106\n",
      "Overall sparsity: 0.0522926267281106\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [97.03562088012696, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 10\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9646666666666667\n",
      "Train Loss: 144.67878806591034\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9546666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.05449884792626728\n",
      "Overall sparsity: 0.05449884792626728\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [99.61459159851074, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 11\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9667719298245614\n",
      "Train Loss: 141.7004513144493\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9576666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.056693548387096775\n",
      "Overall sparsity: 0.056693548387096775\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [101.98145599365236, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 12\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.969\n",
      "Train Loss: 138.73338446766138\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9566666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.05866935483870968\n",
      "Overall sparsity: 0.05866935483870968\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [104.35796813964845, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 13\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9712456140350877\n",
      "Train Loss: 136.05703510344028\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9633333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.06061635944700461\n",
      "Overall sparsity: 0.06061635944700461\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [106.67757415771486, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 14\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9734912280701754\n",
      "Train Loss: 134.05764607340097\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9616666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.06228110599078341\n",
      "Overall sparsity: 0.06228110599078341\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [108.92172203063966, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 15\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9754035087719298\n",
      "Train Loss: 131.63642017543316\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9583333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.06410138248847927\n",
      "Overall sparsity: 0.06410138248847927\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [111.12064971923829, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 16\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9760701754385965\n",
      "Train Loss: 129.79578244686127\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9643333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.0659389400921659\n",
      "Overall sparsity: 0.0659389400921659\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [113.3107105255127, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 17\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9778421052631578\n",
      "Train Loss: 128.21558985114098\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9666666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.06744239631336406\n",
      "Overall sparsity: 0.06744239631336406\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [115.24463958740235, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 18\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9789473684210527\n",
      "Train Loss: 126.82780638337135\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.964\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.06918778801843319\n",
      "Overall sparsity: 0.06918778801843319\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [117.31570091247559, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 19\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9803157894736843\n",
      "Train Loss: 124.8745422437787\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.961\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.07168202764976958\n",
      "Overall sparsity: 0.07168202764976958\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [119.43657608032227, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 20\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9815087719298246\n",
      "Train Loss: 123.58404203876853\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.967\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.07223502304147465\n",
      "Overall sparsity: 0.07223502304147465\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [121.32973175048829, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 21\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9826315789473684\n",
      "Train Loss: 122.31343160569668\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.963\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.07459677419354839\n",
      "Overall sparsity: 0.07459677419354839\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [123.29399147033692, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 22\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.984\n",
      "Train Loss: 120.83934912085533\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9666666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.07616935483870968\n",
      "Overall sparsity: 0.07616935483870968\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [125.15468673706056, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 23\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9839298245614035\n",
      "Train Loss: 120.24998215585947\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.966\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.07721198156682027\n",
      "Overall sparsity: 0.07721198156682027\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [127.10622482299806, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 24\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9852280701754386\n",
      "Train Loss: 118.89978698641062\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.964\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.07858294930875576\n",
      "Overall sparsity: 0.07858294930875576\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [128.9058002471924, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 25\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9859122807017544\n",
      "Train Loss: 117.61686453223228\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9713333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.07986751152073733\n",
      "Overall sparsity: 0.07986751152073733\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [130.7054412841797, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 26\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9872105263157894\n",
      "Train Loss: 116.35489165782928\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9676666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.0809447004608295\n",
      "Overall sparsity: 0.0809447004608295\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [132.44380722045898, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 27\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9877368421052631\n",
      "Train Loss: 115.70600016415119\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9683333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.08192972350230415\n",
      "Overall sparsity: 0.08192972350230415\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [134.0646640777588, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 28\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9887894736842106\n",
      "Train Loss: 114.61774088442326\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.967\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.08294930875576037\n",
      "Overall sparsity: 0.08294930875576037\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [135.684387588501, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 29\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9893333333333333\n",
      "Train Loss: 113.76152668893337\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9703333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.08413594470046083\n",
      "Overall sparsity: 0.08413594470046083\n",
      "Node sparsity: [1.0, 0.8375, 0.9]\n",
      "Regularization values per group: [137.319580078125, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 0\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.8772631578947369\n",
      "Train Loss: 177.8257628530264\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9146666666666666\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 1\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9437192982456141\n",
      "Train Loss: 82.97512116655707\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9416666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 2\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9598421052631579\n",
      "Train Loss: 59.15182790905237\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.959\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 3\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9689122807017544\n",
      "Train Loss: 45.89401924237609\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9623333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 4\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9743684210526316\n",
      "Train Loss: 37.609577435068786\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9546666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 5\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9791052631578947\n",
      "Train Loss: 30.911048707552254\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9716666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 6\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9820350877192983\n",
      "Train Loss: 25.601634091697633\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9693333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 7\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9852631578947368\n",
      "Train Loss: 21.873975126538426\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9623333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 8\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9878771929824561\n",
      "Train Loss: 18.20964654511772\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9673333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 9\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9898245614035087\n",
      "Train Loss: 15.188616360770538\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9753333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 10\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9915263157894737\n",
      "Train Loss: 12.558601557277143\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9726666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 11\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.993\n",
      "Train Loss: 10.665602262830362\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9796666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 12\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9948245614035087\n",
      "Train Loss: 8.870717698591761\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9493333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 13\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9955964912280701\n",
      "Train Loss: 7.650883708032779\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9726666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 14\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9970877192982456\n",
      "Train Loss: 5.724808812723495\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9743333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 15\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9978070175438597\n",
      "Train Loss: 4.734853012836538\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.977\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 16\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9987894736842106\n",
      "Train Loss: 3.6461959758307785\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9756666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 17\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9990701754385964\n",
      "Train Loss: 3.0724787116632797\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9756666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 18\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9994561403508772\n",
      "Train Loss: 2.516319358954206\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9763333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 19\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.999561403508772\n",
      "Train Loss: 2.099770411296049\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.979\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 20\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9995263157894737\n",
      "Train Loss: 1.8973948838247452\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.976\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 21\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9997719298245614\n",
      "Train Loss: 1.518712300050538\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9776666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 22\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.999859649122807\n",
      "Train Loss: 1.29199578857515\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.978\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 23\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.999859649122807\n",
      "Train Loss: 1.1743218582705595\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9763333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 24\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9998947368421053\n",
      "Train Loss: 1.0464425729878712\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9776666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 25\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999122807017544\n",
      "Train Loss: 0.9468312917160802\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9776666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 26\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9998947368421053\n",
      "Train Loss: 0.8741939875180833\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9786666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 27\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999122807017544\n",
      "Train Loss: 0.8115451158519136\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9776666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 28\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999122807017544\n",
      "Train Loss: 0.7448775689408649\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9783333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 29\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999122807017544\n",
      "Train Loss: 0.7063956196361687\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.978\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 1.0\n",
      "Overall sparsity: 1.0\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 0\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.8684912280701754\n",
      "Train Loss: 188.72488532215357\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.909\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.9999654377880184\n",
      "Overall sparsity: 0.9999654377880184\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 1\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9471228070175438\n",
      "Train Loss: 80.493835888803\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.951\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 2\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9617894736842105\n",
      "Train Loss: 57.41385883465409\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.959\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 3\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9711754385964912\n",
      "Train Loss: 43.77224952541292\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9653333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 4\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9767543859649123\n",
      "Train Loss: 35.47034206986427\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9743333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 5\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9809824561403508\n",
      "Train Loss: 28.945509337820113\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9633333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 6\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9834736842105263\n",
      "Train Loss: 24.220388957299292\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9613333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 7\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9859122807017544\n",
      "Train Loss: 20.232218170538545\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.974\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 8\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.988578947368421\n",
      "Train Loss: 16.853816346731037\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.959\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 9\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9904912280701754\n",
      "Train Loss: 14.250302592059597\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9743333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 10\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9929824561403509\n",
      "Train Loss: 11.435856594063807\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9763333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 11\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9949824561403509\n",
      "Train Loss: 9.07866669492796\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.973\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 12\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.996140350877193\n",
      "Train Loss: 7.374614789616317\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.977\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 13\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.997\n",
      "Train Loss: 6.140851047937758\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.976\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 14\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.997421052631579\n",
      "Train Loss: 5.26559029793134\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9136666666666666\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 15\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9978070175438597\n",
      "Train Loss: 4.613529158756137\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9766666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 16\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9989649122807017\n",
      "Train Loss: 3.295689205697272\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9773333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 17\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9993333333333333\n",
      "Train Loss: 2.6288035839388613\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9793333333333333\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 18\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9995964912280701\n",
      "Train Loss: 2.122510964545654\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9793333333333333\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 19\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9997719298245614\n",
      "Train Loss: 1.7342969798773993\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9796666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 20\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9997894736842106\n",
      "Train Loss: 1.4582032865146175\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9796666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 21\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9998245614035087\n",
      "Train Loss: 1.2932756883092225\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9786666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 22\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9998421052631579\n",
      "Train Loss: 1.148562468442833\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9773333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 23\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.999859649122807\n",
      "Train Loss: 1.0474850061291363\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9796666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 24\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999122807017544\n",
      "Train Loss: 0.9235119719451177\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.98\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 25\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9998947368421053\n",
      "Train Loss: 0.8514193547161995\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9803333333333333\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 26\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999298245614036\n",
      "Train Loss: 0.7848438488144893\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.98\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 27\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999298245614036\n",
      "Train Loss: 0.7337008645699825\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9816666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 28\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999298245614036\n",
      "Train Loss: 0.685630609135842\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.98\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 29\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9999298245614036\n",
      "Train Loss: 0.6392906110850163\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.981\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.999971198156682\n",
      "Overall sparsity: 0.999971198156682\n",
      "Node sparsity: [1.0, 1.0, 1.0]\n",
      "Regularization values per group: [0.0, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 0\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.8753684210526316\n",
      "Train Loss: 181.33231124281883\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.916\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7495622119815668\n",
      "Overall sparsity: 0.7495622119815668\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [0.09223201217651368, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 1\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9390350877192982\n",
      "Train Loss: 90.47748399525881\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9386666666666666\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7091474654377881\n",
      "Overall sparsity: 0.7091474654377881\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [0.09930736083984376, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 2\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.953859649122807\n",
      "Train Loss: 68.93084553256631\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.948\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6183410138248848\n",
      "Overall sparsity: 0.6183410138248848\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [0.10274370956420899, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 3\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.961859649122807\n",
      "Train Loss: 57.08739411830902\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.955\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6243548387096775\n",
      "Overall sparsity: 0.6243548387096775\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [0.10563334312438966, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 4\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9671052631578947\n",
      "Train Loss: 49.389526480808854\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.946\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.633197004608295\n",
      "Overall sparsity: 0.633197004608295\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [0.10717397842407227, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 5\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.969859649122807\n",
      "Train Loss: 43.81900278292596\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9633333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6208870967741935\n",
      "Overall sparsity: 0.6208870967741935\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [0.10795693969726562, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 6\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9733333333333334\n",
      "Train Loss: 39.13132077641785\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9666666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6241244239631336\n",
      "Overall sparsity: 0.6241244239631336\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [0.1084710632324219, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 7\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9751754385964913\n",
      "Train Loss: 35.83579209912568\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9363333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6408582949308755\n",
      "Overall sparsity: 0.6408582949308755\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [0.10951257705688476, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 8\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9773333333333334\n",
      "Train Loss: 33.420344329439104\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9256666666666666\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6987557603686636\n",
      "Overall sparsity: 0.6987557603686636\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [0.1099228858947754, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 9\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9781228070175438\n",
      "Train Loss: 31.195052270777524\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9683333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5889688940092166\n",
      "Overall sparsity: 0.5889688940092166\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [0.10884767990112304, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 10\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9799122807017544\n",
      "Train Loss: 28.54741683974862\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.971\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5560656682027649\n",
      "Overall sparsity: 0.5560656682027649\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [0.10845964736938478, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 11\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9804385964912281\n",
      "Train Loss: 27.435699752531946\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9743333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5595161290322581\n",
      "Overall sparsity: 0.5595161290322581\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [0.10819759674072266, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 12\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9815964912280701\n",
      "Train Loss: 26.209367216099054\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.933\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6011751152073733\n",
      "Overall sparsity: 0.6011751152073733\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [0.10833817367553711, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 13\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.982\n",
      "Train Loss: 25.421629084274173\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.967\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5152476958525346\n",
      "Overall sparsity: 0.5152476958525346\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [0.10749223709106445, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 14\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9835438596491228\n",
      "Train Loss: 24.14103824691847\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9656666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5694988479262673\n",
      "Overall sparsity: 0.5694988479262673\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [0.10751822509765625, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 15\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.983859649122807\n",
      "Train Loss: 22.740795348770916\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9273333333333333\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5837096774193549\n",
      "Overall sparsity: 0.5837096774193549\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [0.10776472930908204, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 16\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9841228070175438\n",
      "Train Loss: 22.595980763435364\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9713333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.47603686635944703\n",
      "Overall sparsity: 0.47603686635944703\n",
      "Node sparsity: [1.0, 0.9125, 1.0]\n",
      "Regularization values per group: [0.10644952697753907, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 17\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9839649122807017\n",
      "Train Loss: 22.16750519676134\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.971\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.533139400921659\n",
      "Overall sparsity: 0.533139400921659\n",
      "Node sparsity: [0.995, 0.9125, 1.0]\n",
      "Regularization values per group: [0.10608839645385743, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 18\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9851754385964913\n",
      "Train Loss: 20.195161732379347\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9566666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5356163594470046\n",
      "Overall sparsity: 0.5356163594470046\n",
      "Node sparsity: [0.995, 0.9, 1.0]\n",
      "Regularization values per group: [0.10586158905029298, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 19\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9855964912280701\n",
      "Train Loss: 20.56994107691571\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9713333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.46624423963133643\n",
      "Overall sparsity: 0.46624423963133643\n",
      "Node sparsity: [0.995, 0.9, 1.0]\n",
      "Regularization values per group: [0.10463527526855469, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 20\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9848245614035088\n",
      "Train Loss: 20.8166684191674\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.971\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5141935483870967\n",
      "Overall sparsity: 0.5141935483870967\n",
      "Node sparsity: [0.995, 0.9, 1.0]\n",
      "Regularization values per group: [0.10459396209716798, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 21\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9868070175438597\n",
      "Train Loss: 18.90274584526196\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9733333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.4674251152073733\n",
      "Overall sparsity: 0.4674251152073733\n",
      "Node sparsity: [0.995, 0.8875, 1.0]\n",
      "Regularization values per group: [0.10382438812255859, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 22\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9863859649122807\n",
      "Train Loss: 18.637952020857483\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.835\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5769009216589862\n",
      "Overall sparsity: 0.5769009216589862\n",
      "Node sparsity: [0.995, 0.8875, 1.0]\n",
      "Regularization values per group: [0.10506904983520508, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 23\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9847719298245614\n",
      "Train Loss: 21.438506516162306\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.972\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.46132488479262673\n",
      "Overall sparsity: 0.46132488479262673\n",
      "Node sparsity: [0.995, 0.8875, 1.0]\n",
      "Regularization values per group: [0.10332573547363283, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 24\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9873859649122807\n",
      "Train Loss: 18.07872890913859\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9673333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.47449308755760367\n",
      "Overall sparsity: 0.47449308755760367\n",
      "Node sparsity: [0.995, 0.8875, 1.0]\n",
      "Regularization values per group: [0.10285391693115235, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 25\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9880175438596491\n",
      "Train Loss: 17.346452171215788\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9653333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5055299539170507\n",
      "Overall sparsity: 0.5055299539170507\n",
      "Node sparsity: [0.99, 0.875, 1.0]\n",
      "Regularization values per group: [0.10264944458007813, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 26\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9873333333333333\n",
      "Train Loss: 17.092457303311676\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9693333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.4663421658986175\n",
      "Overall sparsity: 0.4663421658986175\n",
      "Node sparsity: [0.99, 0.875, 1.0]\n",
      "Regularization values per group: [0.1016855697631836, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 27\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9869649122807017\n",
      "Train Loss: 17.48990528890863\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9696666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.41889976958525343\n",
      "Overall sparsity: 0.41889976958525343\n",
      "Node sparsity: [0.99, 0.875, 1.0]\n",
      "Regularization values per group: [0.10127677536010743, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 28\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9883684210526316\n",
      "Train Loss: 16.301163035212085\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.926\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5040322580645161\n",
      "Overall sparsity: 0.5040322580645161\n",
      "Node sparsity: [0.99, 0.875, 1.0]\n",
      "Regularization values per group: [0.10122851409912109, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 29\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9883157894736843\n",
      "Train Loss: 16.139680463820696\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.947\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.46414170506912444\n",
      "Overall sparsity: 0.46414170506912444\n",
      "Node sparsity: [0.99, 0.875, 1.0]\n",
      "Regularization values per group: [0.10041580810546877, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 0\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.8658421052631579\n",
      "Train Loss: 192.21051815152168\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9086666666666666\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.7429665898617511\n",
      "Overall sparsity: 0.7429665898617511\n",
      "Node sparsity: [1.0, 0.85, 1.0]\n",
      "Regularization values per group: [0.09698579635620116, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 1\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9417192982456141\n",
      "Train Loss: 87.45607490465045\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9453333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6701785714285714\n",
      "Overall sparsity: 0.6701785714285714\n",
      "Node sparsity: [1.0, 0.8375, 1.0]\n",
      "Regularization values per group: [0.10393946266174317, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 2\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9554912280701754\n",
      "Train Loss: 66.69633569940925\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9536666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6929377880184332\n",
      "Overall sparsity: 0.6929377880184332\n",
      "Node sparsity: [1.0, 0.825, 1.0]\n",
      "Regularization values per group: [0.10817345199584961, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 3\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9645438596491228\n",
      "Train Loss: 54.12201835773885\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.959\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6926958525345622\n",
      "Overall sparsity: 0.6926958525345622\n",
      "Node sparsity: [1.0, 0.825, 1.0]\n",
      "Regularization values per group: [0.11032444686889649, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 4\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9684561403508772\n",
      "Train Loss: 46.820664901286364\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9653333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6938940092165898\n",
      "Overall sparsity: 0.6938940092165898\n",
      "Node sparsity: [1.0, 0.825, 1.0]\n",
      "Regularization values per group: [0.11188538131713868, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 5\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9718771929824561\n",
      "Train Loss: 41.63361598178744\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9566666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6514112903225806\n",
      "Overall sparsity: 0.6514112903225806\n",
      "Node sparsity: [1.0, 0.825, 1.0]\n",
      "Regularization values per group: [0.1125192783355713, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 6\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9745964912280701\n",
      "Train Loss: 37.48957444075495\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9563333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6768836405529954\n",
      "Overall sparsity: 0.6768836405529954\n",
      "Node sparsity: [1.0, 0.8125, 1.0]\n",
      "Regularization values per group: [0.11313711318969727, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 7\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9766491228070175\n",
      "Train Loss: 34.17675691843033\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.968\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6145391705069124\n",
      "Overall sparsity: 0.6145391705069124\n",
      "Node sparsity: [1.0, 0.8, 1.0]\n",
      "Regularization values per group: [0.1130563087463379, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 8\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9768421052631578\n",
      "Train Loss: 32.54147622734308\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9166666666666666\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6680472350230415\n",
      "Overall sparsity: 0.6680472350230415\n",
      "Node sparsity: [1.0, 0.8, 1.0]\n",
      "Regularization values per group: [0.11385090408325195, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 9\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.978701754385965\n",
      "Train Loss: 30.61489844508469\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9536666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6509389400921659\n",
      "Overall sparsity: 0.6509389400921659\n",
      "Node sparsity: [1.0, 0.8, 1.0]\n",
      "Regularization values per group: [0.11360231399536133, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 10\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9799649122807017\n",
      "Train Loss: 28.50878932652995\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9636666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.587741935483871\n",
      "Overall sparsity: 0.587741935483871\n",
      "Node sparsity: [1.0, 0.8, 1.0]\n",
      "Regularization values per group: [0.11274427108764648, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 11\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9822631578947368\n",
      "Train Loss: 25.887355498038232\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9653333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6537730414746544\n",
      "Overall sparsity: 0.6537730414746544\n",
      "Node sparsity: [1.0, 0.8, 1.0]\n",
      "Regularization values per group: [0.11298935317993164, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 12\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9829649122807017\n",
      "Train Loss: 25.10789014818147\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9726666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.573508064516129\n",
      "Overall sparsity: 0.573508064516129\n",
      "Node sparsity: [1.0, 0.8, 1.0]\n",
      "Regularization values per group: [0.11218359985351563, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 13\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9833684210526316\n",
      "Train Loss: 23.70439196820371\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9683333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5992626728110599\n",
      "Overall sparsity: 0.5992626728110599\n",
      "Node sparsity: [1.0, 0.8, 1.0]\n",
      "Regularization values per group: [0.11170696907043456, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 14\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9832631578947368\n",
      "Train Loss: 23.592573615256697\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.914\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5574654377880184\n",
      "Overall sparsity: 0.5574654377880184\n",
      "Node sparsity: [1.0, 0.8, 1.0]\n",
      "Regularization values per group: [0.11154245376586915, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 15\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9843157894736843\n",
      "Train Loss: 22.23806793568656\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9686666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5161981566820276\n",
      "Overall sparsity: 0.5161981566820276\n",
      "Node sparsity: [0.995, 0.8, 1.0]\n",
      "Regularization values per group: [0.11079940490722656, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 16\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.984719298245614\n",
      "Train Loss: 21.466561714652926\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9683333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5398156682027649\n",
      "Overall sparsity: 0.5398156682027649\n",
      "Node sparsity: [0.995, 0.8, 1.0]\n",
      "Regularization values per group: [0.11054868927001953, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 17\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9850350877192983\n",
      "Train Loss: 21.002132653724402\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.969\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5628859447004608\n",
      "Overall sparsity: 0.5628859447004608\n",
      "Node sparsity: [0.99, 0.8, 1.0]\n",
      "Regularization values per group: [0.11019778213500978, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 18\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.985719298245614\n",
      "Train Loss: 20.040605548769236\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9516666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5632603686635945\n",
      "Overall sparsity: 0.5632603686635945\n",
      "Node sparsity: [0.99, 0.8, 1.0]\n",
      "Regularization values per group: [0.1102216812133789, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 19\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9859824561403508\n",
      "Train Loss: 19.717006691731513\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.889\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.6080184331797235\n",
      "Overall sparsity: 0.6080184331797235\n",
      "Node sparsity: [0.99, 0.8, 1.0]\n",
      "Regularization values per group: [0.11010635528564452, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 20\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9851929824561404\n",
      "Train Loss: 20.510600595735013\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9623333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5394239631336406\n",
      "Overall sparsity: 0.5394239631336406\n",
      "Node sparsity: [0.99, 0.8, 1.0]\n",
      "Regularization values per group: [0.10897969131469726, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 21\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9870701754385965\n",
      "Train Loss: 18.53772644000128\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.966\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5391705069124424\n",
      "Overall sparsity: 0.5391705069124424\n",
      "Node sparsity: [0.99, 0.7875, 1.0]\n",
      "Regularization values per group: [0.10846408882141115, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 22\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9871578947368421\n",
      "Train Loss: 17.52122384821996\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9423333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5811578341013824\n",
      "Overall sparsity: 0.5811578341013824\n",
      "Node sparsity: [0.99, 0.7875, 1.0]\n",
      "Regularization values per group: [0.10865613403320314, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 23\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9866842105263158\n",
      "Train Loss: 18.160457484424114\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.964\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5665264976958525\n",
      "Overall sparsity: 0.5665264976958525\n",
      "Node sparsity: [0.99, 0.7875, 1.0]\n",
      "Regularization values per group: [0.10777081604003906, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 24\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9870877192982456\n",
      "Train Loss: 17.77530056773685\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9683333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5415380184331797\n",
      "Overall sparsity: 0.5415380184331797\n",
      "Node sparsity: [0.99, 0.7875, 1.0]\n",
      "Regularization values per group: [0.1075511375427246, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 25\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9880701754385965\n",
      "Train Loss: 17.317167398519814\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9713333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5325979262672811\n",
      "Overall sparsity: 0.5325979262672811\n",
      "Node sparsity: [0.99, 0.775, 1.0]\n",
      "Regularization values per group: [0.10639797515869143, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 26\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9880526315789474\n",
      "Train Loss: 16.483100365381688\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9743333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5129089861751152\n",
      "Overall sparsity: 0.5129089861751152\n",
      "Node sparsity: [0.99, 0.775, 1.0]\n",
      "Regularization values per group: [0.10598242950439454, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 27\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9890175438596491\n",
      "Train Loss: 15.552512479480356\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9656666666666667\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5094815668202765\n",
      "Overall sparsity: 0.5094815668202765\n",
      "Node sparsity: [0.99, 0.775, 1.0]\n",
      "Regularization values per group: [0.10530161285400391, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 28\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.9890877192982456\n",
      "Train Loss: 15.492780855856836\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.9693333333333334\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.5156163594470046\n",
      "Overall sparsity: 0.5156163594470046\n",
      "Node sparsity: [0.99, 0.775, 1.0]\n",
      "Regularization values per group: [0.10457253646850585, 0.0]\n",
      "Learning rate: 0.1\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "||||||||||||||||||||||||||||||||||||||||||||||||||\n",
      "<><><><><><><><><><><><><><><><><><><><><><><><><>\n",
      "Epoch: 29\n",
      "--------------------------------------------------\n",
      "Train Accuracy: 0.988421052631579\n",
      "Train Loss: 16.083554527256638\n",
      "--------------------------------------------------\n",
      "Validation Accuracy: 0.968\n",
      "Non-zero kernels: 0\n",
      "Linear sparsity: 0.4944758064516129\n",
      "Overall sparsity: 0.4944758064516129\n",
      "Node sparsity: [0.99, 0.775, 1.0]\n",
      "Regularization values per group: [0.10434024658203125, 0.0]\n",
      "Learning rate: 0.1\n"
     ]
    }
   ],
   "source": [
    "while runs.step(conf):\n",
    "    # -----------------------------------------------------------------------------------\n",
    "    # Reinit weigts and the corresponding optimizer\n",
    "    # -----------------------------------------------------------------------------------\n",
    "    train_hist, val_hist = reset_hist(tracked)\n",
    "    model = init_weights(conf, model)\n",
    "    opt, scheduler = init_opt(conf, model)\n",
    "    \n",
    "    # -----------------------------------------------------------------------------------\n",
    "    # train the model\n",
    "    # -----------------------------------------------------------------------------------\n",
    "    for epoch in range(conf.epochs):\n",
    "        print(25*\"<>\")\n",
    "        print(50*\"|\")\n",
    "        print(25*\"<>\")\n",
    "        print('Epoch:', epoch)\n",
    "\n",
    "        # ------------------------------------------------------------------------\n",
    "        # train step, log the accuracy and loss\n",
    "        # ------------------------------------------------------------------------\n",
    "        train_data = train.train_step(conf, model, opt, train_loader)\n",
    "\n",
    "        # update history\n",
    "        for key in tracked:\n",
    "            if key in train_data:\n",
    "                var_list = train_hist.setdefault(key, [])\n",
    "                var_list.append(train_data[key])        \n",
    "\n",
    "        # ------------------------------------------------------------------------\n",
    "        # validation step\n",
    "        val_data = train.validation_step(conf, model, opt, valid_loader)\n",
    "\n",
    "        # update history\n",
    "        for key in tracked:\n",
    "            \n",
    "            \n",
    "            if key in val_data:\n",
    "                var = val_data[key]\n",
    "                if isinstance(var, list):\n",
    "                    for i, var_loc in enumerate(var):\n",
    "                        key_loc = key+\"_\" + str(i)\n",
    "                        var_list = val_hist.setdefault(key_loc, [])\n",
    "                        val_hist[key_loc].append(var_loc)\n",
    "                else:\n",
    "                    var_list = val_hist.setdefault(key, [])\n",
    "                    var_list.append(var)    \n",
    "\n",
    "        # scheduler step\n",
    "        scheduler.step(train_data['loss'])\n",
    "        print(\"Learning rate:\",opt.param_groups[0]['lr'])\n",
    "        \n",
    "        # update best model\n",
    "        best_model(train_data['acc'], val_data['acc'], model=model)\n",
    "\n",
    "        \n",
    "    # add values to the run history\n",
    "    runs.add_history(train_hist, \"train\")\n",
    "    runs.add_history(val_hist, \"val\")\n",
    "            \n",
    "    # update random seed\n",
    "    cf.seed_torch(conf.random_seed)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Prepare Data\n",
    "In this step we average over different runs of the same parameter configuration."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "hist = runs.history\n",
    "keys = ['train_acc','val_acc','val_reg_vals_0','val_linear_sparse']\n",
    "\n",
    "\n",
    "hist_idx = 0\n",
    "for param in params:\n",
    "    data = {}\n",
    "    for key in keys:\n",
    "        if not key in hist[hist_idx]:\n",
    "            continue\n",
    "        \n",
    "        if key == 'train_acc' or key == 'val_acc' or key == 'val_linear_sparse':\n",
    "            rescale = 100\n",
    "        else:\n",
    "            rescale = 1/param['lamda'] if param['lamda'] > 0.0 else 0.0\n",
    "            \n",
    "        n = len(hist[hist_idx][key])\n",
    "        m = param.get('reps',1)\n",
    "        data_loc = np.zeros(shape=(n,m))\n",
    "        \n",
    "        # assign data and save it into local array for mean and average\n",
    "        for i in range(m):\n",
    "            var = np.array(hist[hist_idx + i][key])\n",
    "            data_loc[:,i] = rescale*var\n",
    "            data[key+\"_run_\" + str(i)] = rescale*var\n",
    "\n",
    "        # mean and std of the data\n",
    "        data[key+\"_mean\"] = np.mean(data_loc,axis=1)\n",
    "        data[key+\"_std\"] = np.std(data_loc,axis=1)\n",
    "        \n",
    "        param['result'] = data\n",
    "        \n",
    "        # update the history index\n",
    "    hist_idx += m"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Setup plots and appearance"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.style.use('default')\n",
    "plt.style.use('ggplot')\n",
    "matplotlib.rcParams['mathtext.fontset'] = 'cm'\n",
    "matplotlib.rcParams['font.family'] = 'STIXGeneral'\n",
    "matplotlib.rcParams['font.size']=8\n",
    "matplotlib.rcParams['lines.linewidth'] = 1\n",
    "matplotlib.rcParams['lines.markersize'] = 2\n",
    "matplotlib.rcParams['text.color'] = 'black'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_training_stats(ax, keys, data, label='', color='k',alpha=1.0, alpha_fill=0.2):\n",
    "    for i in range(len(keys)):\n",
    "        if not (keys[i]+'_mean') in data:\n",
    "            continue\n",
    "        # --------------------------------\n",
    "        var_mean = data[keys[i]+'_mean']\n",
    "        var_std = data[keys[i]+'_std']\n",
    "        # --------------------------------\n",
    "        epochs = np.arange(len(var_mean))\n",
    "        ax[i].plot(epochs,var_mean, label=label, color=color,alpha=alpha)\n",
    "        ax[i].fill_between(epochs, var_mean - var_std, var_mean + var_std, color=color, alpha=alpha_fill)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Colors"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_2344/3754096573.py:1: MatplotlibDeprecationWarning: The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.\n",
      "  cmp = matplotlib.cm.get_cmap(name='Accent')\n"
     ]
    }
   ],
   "source": [
    "cmp = matplotlib.cm.get_cmap(name='Accent')\n",
    "colors = [\n",
    "    cmp(0.7), #\n",
    "    cmp(0.4), #\n",
    "    cmp(0.0), #\n",
    "    cmp(0.2), #\n",
    "    cmp(0.8), #\n",
    "    cmp(0.8), #\n",
    "    cmp(0.3), #\n",
    "]\n",
    "\n",
    "for i, param in enumerate(params):\n",
    "    param['color'] = colors[i]\n",
    "    param.setdefault('label', param['optim'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Final Plot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAFtCAYAAAA55Q8mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD5VElEQVR4nOz9d5wkZ3Xvj7+fp1Lnnjyzs7uzaVZa5QgKSIBkLIyMAYkkcw0OWDKyfS822Fx8MWAMxogksL8W4QcOghdXBi7oYgEXIaICEhJIWoWVVpvT5NS5KzzP74/q7pnZmdmd2Z20Ur33NTtT3dVVp6urnzp1nnM+R2itNREREREREREREcuCXGkDIiIiIiIiIiJeSETOV0RERERERETEMhI5XxERERERERERy0jkfEVERERERERELCOR8xURERERERERsYxEzldERERERERExDISOV8REREREREREctI5HxFRERERERERCwjkfMVEREREREREbGMmCttwEozNjaG7/vHXa+9vZ2hoaFlsGhhRHYtjMiuhbHa7TJNk+bm5pU256SJxqGlIbJrYUR2LYypdi10LHrBO1++7+N53jHXEUI01l1N3ZgiuxZGZNfCOBXser4QjUOLT2TXwojsWhgna1c07RgRERERERERsYxEzldERERERERExDISOV8REREREREREcvIqs75KhQKlEolOjo6VtqUiIiIU5hvfvOb81pv/fr1XHLJJUtsTUTEKqEaIH81gPHzQxj3HWZizwTO5izq7FbUWW2os9tQ21ogvgiuQsVH9BURfUXkkQLicAFxpIA4VED0F6HJQfU2obY2o7c0obZk0WtTYBrTtxMoGK0gh8qIgRJiqARKozM2OmVD2kZnwt9eSuLZCgKNVRWYZY2oBKEtZR/KPqLgIUYrMFZBjFUQo7XfIxXEeBX3Ly8keE3vyb//o1i1ztfhw4f5p3/6J171qlfR0dHB4OAg99xzD729vezdu5fXv/71mKbJXXfdRSaTYXx8nK1bt3LGGWestOkRERGrjMcee4zzzjvvmOtorXn22Wcj5yti5dAasWcCUfRQ3SlojUEtsXtOxirInWPIZ8eQz44ixqvo9ji6PYHuSKDb46jOBNU2i4lUmfi+CtmfjWHedwTjoT5EJUBnbYLzO7Dfeh6lHf0Y9x7G/N/PIpRGS9A9GdSZrah1aYgZ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hE8qtZtKpZ1qtZNQy4spd6gRS0bcRJ3ThrYs1Aq2y8lms9OW621tHMeZ1kPxbW97G+vXr+f9738/H/nIR/j0pz+NlJJsNosQgp07d/Lud7+bZDLJ61//eoIg4LHHHuOee+7hgx/84LR9lEolmpubpz2mlOLf/u3feN3rXsfXv/71hsDoxo0bG5G2un3zaS90tD0AX/7yl7n//vvZsmUL73vf+1i7di2f/exn+dM//VOeeeYZzj//fBzHWZSctuPxyU9+kkcffZTXvva1/OVf/iWZTIavfe1rjedPVR3CSW0viMcPU6021yQl6iiUsmaIrka8sKgr0k955OQjX1KADiUm3HJYsBJ4elLRX0fVjsdiSb6Rvb29fOxjH6Onp4eBgQEefvhh/viP/3gpdrVilHJ5sqyfpeT7aEIhVZBkMs+ilFUr+w5zNUK16egMfaHw/e9/f0Hrr1u3blYB0O7ubr71rW/x1re+lXvvvZfNmzdz0UUXNfLMjt7GkSNHGsuVSoWPfvSj3HjjjXR1dfHGN76RP/uzP0MIwd69e6ftrx75Mk2T1772tXPaebQ9F198MW9/+9t5+9vfPmPdjo4Oenp6gLD/5mxRucXmr/7qr3j66ad54okneOSRR7jiiiuWfJ/LQV3bSwgXyyqQy21l6ngihIqiXhHATEfoZB2jetDBMCWBFwqt+p4mPkXVP3K+5mZJnK/TTjuNm266iYcffphsNst111037W76+UC55JIFzOyxM4ikLCEEJBL7Mc0i4+PnobVZmwqIo/Wp0dA3YuH86Ec/AuDWW28lnU6zfft2Hn/8cXzfZ2BggB07drB//34OHjzIoUOH2LFjB/39/QwPD3P77bfT3NzM/fff34hkbd++nX379jE8PMzNN9/MjTfeyPe//33e9ra3EQQB//AP/8DHPvYxEokEn/3sZxsOzste9jL+/u//vmHX448/3oisAdx0000cPHiQnp4eNm3axKZNmxrrzhb5qlarfO973+PgwYPceeedvOpVr5phz9EK7F/60pd47LHHeO1rX8vVV19NS0sLAM8+++y0FIWl5Mwzz+TMM89kdHSUe+65hyNHjtDf309XVxeHDh1i3bp189qOUoo777yTnp4edu/ezRVXXIFlWdxzzz309vayd+9eXv/612PO0ntxcZnU9nKcUbSmJlMz+bxSZhT1igDCSFU9D0uIRVCeF+F/hhUm86ugPu0YXtPCacfI+5oLoZeg1nx4eJh9+/Zx8cUXEwQBTz/9NOecc85i72ZRGBoaOu60ihCCNWvW0NfX1yjN/9ETP2Zd6QLWpzwSZ3XM8UqFbY9iWTmy2acpFDbVpgQ0oGqaOychcjeLXauB1WJXLpcjk5l+1z/fabTl5mTt+vznP88b3vAG2traGBsb48knn+TKK69sPP+5z32O66+/vpFTtlx2HY9bb72Vd7zjHbO2y5mNXC5HNpttnF+maZ6wVpjv+zz44IM89dRTPPPMM9x6663zet2Pf/xjxsfHuf766xkfH+eTn/wklmVx44030t3dzd13343v+9OqS+t4njfteAohiMfjDA0NHTcXUQhBV1cX/f39tZydEoZRQmuTTOZppPQYH5/M9ZPSw/Oal9z5Otqu1UJk13TcSoDvKqQUKKVJZI6uml2YXVppSnkfrxrQv6dE16YE/XtLtK+Pk8xaBL4ilrYwTrqq8tT4HBc6FkXVjieIxkL7HlbH3OXbYfsgj3R6Zy0XoxsIE2BDPa/oriBicTBNkz/5kz/h7LPP5vzzz5/xXbvpppu46667jjl1uNw89thjvOlNb5q347XYmKbJFVdcwRVXXLEgOY89e/Y0oopNTU309fVRLBbp7g6/3729vdx+++2zOl/f/va3+eY3v9lY3rRpE7fccsuCBu2urrouYD+QBhQwDmyjvb2eaK8Ix5e5bgwXn0m7VheRXSFu1aeYq2AYEgRkmhMnZZfWmvGhEipQ9O85gCFiQInWtmZS2Ri+H5BpTkzmgJ0kz7fPMap2PAECHSCFgyiVkLGmudZCylBIVWtJPn8a4WAY4PuxaLoxYlH54z/+42PmVRqGsaocL4Dzzz9/pU1oUC8SmA8bNmzg0Ucf5ZprrsH3fUqlUqNwAkIpjvHx8Vlfe911102rGq1P/Sw08gUeljWOUia2PUo2GzA66hAEwwBIGQo2a9037/d1opwqkYnVwkrZpQJNueAhhUCakmJl4qTtKk64yNrU4thwWDhTKOWoeAWCQFN2cycv5nqKfI6rIvL1fK92LAZFYkESo1BBzNFGwTQLmGYZxxkllzut5myFvdUiWYmIiNXFQsrur776avL5PHfccQfpdJp0Oj1tzCuVSjOqWutYljXNUZvKfC8s9SlHpUKhJdseIQhiBEGcem/YIDBQyqwtLw9a61V1cawT2VVD6DDhRWsMOfe+F2yXCEVVq6Ww4lGaoAm3odGLdgo+3z7HZal2fOSRR2atejpVKfgFHD+JVcjPqm4vhIeUHonEYYIgRrVa94Z9fD9qmB0RcSpjGAbXX389AF/5yld43etex+OPP95I3t+9ezcXXnjhElqgMYxqLZdLY9ujVKtt1McVIXx8v2kJ9x9xKiKEQLA46vaT2wx/G5bALSsMU0zvHxmVO85JVO14AuT9PLGgmVhxHDHLHbNp5pGyim2PUCj0Up9uDIJEVHkUEbEKcV0X255/ay+lFHfddRe2bXPttddyySWX8L3vfY/e3l4GBgYW1HppoUzV9jLNIobhTqly1DVdryitIWImQtSqEBfZKQrzutS0no6R33VslswTaGlp4ZWvfGVj+e677162kvKlpuCWSOkObD3z7BKiCigSiUMoZVOpdDA53Th7gmNERMTy4Xke27dvp1gsNqYLduzYMaMl0lwUi0WeeuopLr/8ctrawgT31tZW3vrWtwJw2WWXLY3hNeraXgC2PYpSBp4XVvWGUa/ZpzwjIoQUoPTiOUa17dRV7U0r0viaL0sehnn66af5r//6r0aC6vOBSq5MiuknWojGNAtI6eI4QxQKmwl7N3rRdGNExCrhwx/+MPl8nqamJiDM2ejrm39iejKZ5MUvfvESWXc8Qm2vegTdtkdx3WbCcQa0NtB6/hG8iBcW0hAEnlo0/a16D8d6xGtq5Cvi2CxZwv19993H97//fQ4dOsT555/P2WefvRS7WhG8WisFq3n6ICdlBdAkEofR2qJS6QQUWsei6caIiFWCYRgzNL0OHz68QtYslMkWVFJWsaxCQ8Km3kooImIupGRRQ1JCCLTSGLVAxMyARMRcLKpHkMvluPvuu/nhD39IIpGgra2NL3zhC6RSKYaHhxdzVytKEAh04CPXTe3JqDDNIkL4xGKDFIsbCNt+eNE0QETEKuLSSy+lVCqRSEymAZw6jbUnq6pse6ymal/v26lQylkZsyJOCaQhkcbiVQwKCToA05we+dJaR+r2x2HRnK8vfvGL/PznP2fr1q3cdNNNXHTRRXzta18jlQpFSOu5Eac6WmukthGFIsbZk+9JyhJaS5LJw2htUKl0MZn8erz+jxEREcvFL37xC77xjW80mmlrrcnlcnzlK19ZYcsWhm2P4vuZKcn1OoqwRxwTIRd3alCEaieYjkQIsJwpTbUj5+uYLNo39U1vehPt7e0EQbAsjXJXirIqY6sERq6MSNYHvQDTrACKWGyAUmldbRD0CYKoqW3E6mBkZITW1tYVteGpp57irLPOAkJh0RNtDXQyXHjhhbzhDW9oaHtprXnssceW3Y6TI8C2xykWe6Y8ZlDP/YqImA0hBLazeMEA0Ui4l6w/M9WootSEjl7E3Cza4WlqauK6667juuuu48CBA3z7299mcHCw8fzExMQxXn3qUAgKxPwkVq7aEFiVMszDCHO9RC0HI6xwjEq+X7j85Cc/Ye3atdx9992Nxw4cOMC73/3uOV/z8MMP09vbyyc/+UluvfVWbr75ZnK53Enbsm/fPh588MHG8vj4OLfffvuyihb++te/nqayX6lU+O53v7ts+69z7bXXcuaZZ5LJZGhpaeGss87id3/3d5fdjpPBticQQk2RmIjyvSKWn3qzbjhKvkJH1Y7HY9Fj1IZhcOmllwKwf/9+vvnNb+J5Hn19fbzrXe9a7N0tOwW/QCxIEpsYQdjhHYQQARAQj/dRKnWjtYkQAb6fIKpwXB0IEdS6DoQRycXA91PHnFK+6qqrAKZV+fb09PCP//iPc77mRS96Ea2trbz5zW9m/fr1vPe97+Ub3/jGSYsU33bbbdxyyy2N5aamJoaGhvjJT37C1VdfvaBtlUolHnjgAb70pS9xxx13zPt1F1544bTI2/r16/nRj37Enj172Lx584JsOBmGhob4+Mc/zpEjR5BSsnHjRv7qr/5qxaOCC8G2R6eo2kOU7xWxEsylF6aJnK/jsaQJAhs2bGDDhg3k83m++MUvLuWulo2CW8TRzTiVAGoNQ4VQxONhqXq5vLa2pkap2ApZGXE0plmgvf3eRd3m0NCVtQbp8+exxx7j6aef5i1veQt33HEHP/3pTznttNP4xS9+wde//vUZg1kul2sIFN9xxx089NBD5PN53v72t7N3714OHTpEJpPhjW98I5/5zGfo7u7mq1/9KrfddhvnnXceAL/61a9obm6ese0bbriBD33oQwt2vhKJBK94xSv4/Oc/33hseHiYu+++u2HPfDWzrrjiCr761a/ygQ98YEE2nAxf+9rXuP7667n44ouJx+McPHiQH/3oR7zpTW9aNhtOjpmq9lG+V8SKIBr/TSdKuD8uy/JtTafT3HjjjcuxqyWnVK7iAFNzFoVwicf7KJe7atOMAUHgEEW9Vg++n2Jo6EpM0zxuA+OFbHOhmKbJt771Ld7ylrfQ09ODYRi8613v4jWveQ2Dg4N0dnYCcPvttzM0NMTw8DAXXHABAOvWreMHP/gB//qv/8qHP/xhtm3bxpYtW7jvvvt49NFHCYKAm2++mfvvv7/heAFs37591jzMtWvXMjAwwODgIB0dHUA4Pfn444831jEMgyAIMAxjWkPoo7ntttum2TNf1qxZw8MPPzzv9ReDs846iyuvvLKxvH79evbv37+sNpwMhnG0qj1E+V4RK4Fg7qtc1Fro2CzbrVIm8/xIPPfK4YXbmNLTMZE4ghCqEfUSQhMEkZr9akJroxalsvA8b8XsOLrhcr3JsuM4uO6khtPb3vY21q9fz/vf/34+8pGP8OlPfxopJdlsFiEEO3fu5N3vfjfJZJLXv/71BEHAY489xj333MMHP/jBafsolUo0NzdPe0wpxb/927/xute9jq9//ev8+Z//OQAbN26c1grMsuZ3vI62B+DLX/4y999/P1u2bOF973vfrK9zHGdRctpOhnw+z/bt27niiitW1I754jhj01Tto3yviBVDzNU3W0Sxh+MQxakXSFDVaBVgZMP8CiF84vEjVCqdtZwLjVIm9fYfERFT+f73v7+g9detW8evf/3rGY93d3fzrW99i7e+9a3ce++9bN68mYsuuqiRZ3b0No4cOdJYrlQqfPSjH+XGG2+kq6uLN77xjfzZn/0ZQgj27t07bX/1yJdpmtOS5Y9nz8UXX8zb3/724+aqFQqFZa+OTqfTfPjDH6azs5PR0dEFtRZaDdj2+DRV+yjfK2KlEELMmtt1rIhYRMgp43wppbjzzjvp6elh9+7dXHHFFViWxT333ENvby979+7l9a9/fS2hegnxTSgWMXrCCIZtjyCl31CZDhPtnx9RvoiT40c/+hEAt956K+l0mu3bt/P444/j+z4DAwPs2LGD/fv3c/DgQQ4dOsSOHTvo7+9neHiY22+/nebmZu6///5GJGv79u3s27eP4eFhbr75Zm688Ua+//3v87a3vY0gCPiHf/gHPvaxj5FIJPjsZz9LT08oQ/Cyl72Mv//7v2/Y9fjjjzciawA33XQTBw8epKenh02bNrFp06bGurNFvqrVKt/73vc4ePAgd955J6961atm2BOPxzmaJ554gpGREX7+85/z0pe+FIBnn3122duOveQlL6G1tZVHHnmEZDLJG9/4RrZs2bKsNpw4JUyzSKm0dspjUb5XxOpCQ+R9HQehl6jWvFwuUywWG8uPPfYYr3jFK054ez/+8Y8ZHx/n+uuvZ3x8nE9+8pNYlsWNN95Id3c3d999N77vc+211876es/zpl1EhBDE43GGhoaOmwMkhKCrq4uDRw7y4OM76HjOYMsFXRi9LcTjh2hqepShoZcAAiEUnrc8VVN1u/r7+5dVMuB4rBa7JiYmZkx3z3cabbk5Wbs+//nP84Y3vIG2tjbGxsZ48sknp+U1fe5zn+P6669v5JQtl13H49Zbb+Ud73jHrM7abORyOZqamhrnl2EYi6IV1tfXt6L6hENDQ8c9zkII1qwZROuHGBm5ZIqMjcLzWo752qUktGsNfX19q24ciuyaPydqVznvzUiuV4EmkVmcqfBT5XhZlrWgsWhJbpf+/d//fdbplZNxvvbs2dO4k29qaqKvr49isUh3dxhx6u3t5fbbb5/T+fr2t7/NN7/5zcbypk2buOWWWxZ0sGLNMZwggT0yRte2DZjtKWAEELXt+EAWSJ7YmzxBurq6lnV/82Wl7SqXy42cqqnM9thq4GTschyHd7zjHZx77rmcf/75XH/99dMSXv/sz/6M//qv/+J1r3vdstp1LB599FHe8pa3LCgf1Lbtxnm1kPPr//yf/8PVV19NU1MTX/7yl6fl10FYaPDxj3983ttbOQ7h++lpjleU7xURceqxJM7Xk08+yRe+8AWampqAUEH6ZCuaNmzYwKOPPso111yD7/uUSqVpF4VEIsH4+Picr7/uuuumVWvVL0wLiXzt7d9LzE/ijPYzODaM8PMkkyOkUgYjI+H0YzimL08C8WqJMB3NarHLdd0Z0YTna+TrD//wD/nDP/zDxvJs5/Rv//ZvL3gfS3m8zj77bIAFbd91Xfr7+xcc+SqXywRBgBCCSqVCW1sbhhHmZWqtjzl2rB58oB/XnTrlGOV7Rawws+V8RVOOx2VJnK+LLrpoWlWXEOKkcyquvvpq8vk8d9xxB+l0mnQ6Pe0CUyqVZlSSTcWyrDnv4OfrIOSrBSzdSXzCB8sI+zxKtya0+f9v78zD5KrK/P85995ae9+X7EkHEtYQMGRhiSgEIsMQwiZMFFQ2RWAEB/GnA7I4RoYHh3FE1Awi6LBEEYWwBcSwhkVCCCGBrGTpTu9Lda333vP741ZVd6U7na7eqrpzPs9TqbpL3futm65T3/ue97zHxDQ9OIcaWcMhpcwq85UgW3UpRjeJv6l0/rb+5V/+Jfn6wgsvTJbWACefdM+ePUMncJhwudoB2W0ibQeV76XIJEI4Ve5VaYn0GJZvbXt7O3fddRfFxV15CJ999hk/+clPBnxMXdc577zzAHj44Yc599xz+eCDD5J3wVu3bmX27NmD1t4XnaEweYDLkuBKFFg14+ZLdqs2rVAospUNGzakFJbVNI333nsvOQAhW3Hyui7EsnZ0W6uh6nspMokQAmnLlAiYmtfx4AyL+RJCMH369OTEtQAtLS2DPq5t2zz99NO43W4WL17MiSeeyKpVq6ipqWHfvn1cfPHFgz5HX0QipmO+NCCeYJgwX87dpyovoVBkK5s3b+all16itraWTZs2JddHo1E2b948oHy4kad79F7leykyj9BAWt3mWlBRsH4xLObr4osv7pFEGwgEBnXMzs5OPvroI+bPn09paSkAJSUlLFu2DIB58+YN6vj9IVHjS/N1mSxNiyGlpoqqKhRZzuGHH8727dvp6OhIyRMzDKPP6v3Zi4Vtpz/LgkIxlAhBaqaNBKEr83UwhsV89TZ66cMPPxyUQcrJyWHOnDmDkTVoZFRDhoKI0i6j1dXtqKJeCkW2c+aZZ3Lqqaf2KG2xfv36DCkaDELleykyzv5BLjWpdv8Ysm/ud77zHa699lqmTJnCNddc02s340hEp4YLS1rophu9rRMxrutuU9NMTNOPyitXKEYHTU1NPP/880QiEcAZGbpp0yZ+8YtfZFhZuqh8L0XmEZqID36JOy6pcr76w5CZr29/+9tMmDABIQT/9E//xPHHH58ylPvdd98dqlNlhI5oB14rB1dDCxzfNdS7K/KlrL6iC9u2ueWWW6ioqODFF19k0aJFXHnlldx9993k5OSgaRpPPPEE5557Lv/yL//ClVdeSXV1Naeccgrbtm1j8uTJ/Mu//EvyO6QYOh599FHGjx9PIBCgurqa1tZWlixZkmlZaWJj2+5Mi1AoeuR3dbNhij4YMvPVfUqSRYsW9ZjmJ93K2tlGW7QNr+XHV7sHxnUVUdU0K26+FIouPvroIxoaGli+fDnXXHMNDz30ENdddx0nnXQSl112GQCXXnopK1euZNy4cRx++OGceOKJXHTRRQBcccUV7Nu3j3/7t3/L4KcYmyxYsIB58+bx1ltvMWfOHDRN45FHHsm0rDSxlPlSZAci+Y+DlAhNhb4OxrAkDNTV1fUa1j/++OOH43QjQmtnGy7bg78xgvB1NXpCWPG8C+X1sxnTNmk1WzFs46BFdftLoVGIofX+FaqqquLNN9/kwQcf5LLLLuPss8/mxz/+cUrXVkVFBZdcckmv77/hhhtYsmQJ3/3ud9XIoSFm8+bNNDQ0sHDhQn7zm99QU1PD66+/nlILLPsR3arcKxSZo+ck2r1Ptq1IZVjM19gI66fS2tEBFOLptJI1vsBGCFt1O44CWs1W/lT/pyE95nnl51HqLu11W2lpKY8++ig33ngjTz31FD/4wQ8oLi7G7XaMeywW409/+hPbtm3jm9/8Zo/3T5s2jc7OThobG4dk7kJFF2eccQZr164lPz+fOXPm8Nhjj3HqqadmWlaaaKg2R5EViF7Kiqs/zYMyLOZrbIT1Uwl0hvBTiC5tMLoKrAKq23EUUGgUcl75eRjG0Ea+DkQkEuHYY4/lueee48Ybb2T58uU0NzcTiUTweDy4XC7Gjx/Pm2++2evMDE1NTfh8vj5nbVAMjOrq6uTN4KxZs5g1axa7d+/OsKr+I4TEslSXoyI7EKJnpEt5r4MzLOZrbIT1U4kEY/ikje7WkpEvTXPmpLNtNdw72zE0g1J3qTNXoTb8czv+5S9/4Qtf+ALFxcV885vf5Dvf+Q6nn346Dz74IFdffTXQM1G1Ow8++CBf/epXk5EyxcBpaWnh//7v/w643bIsYrEY3/nOd0ZQ1cARwlLzOSqyG+W+DsqwuIaxEdZPxQxL7EgQUehNFjERwvkRV7V2FPtTUFDA0qVLueSSS9i2bRs//OEPOeqoo7jrrrv4wQ9+wKRJk6irq+O8885j9+7dfPzxx3R0dBAOh9mxYwfjx49PmShbMXCKiopoaWnhsMMOA+Djjz9mypQpeL1ewJl0e7BFoEcWVd9LkV10v48Uou8bS4XDsHyD161bx+c//3mgK6w/mpFSIqIGWnsnosSb7N9ORL5UQ6jYnzPOOIMzzjijx/r/+I//6HX/1atXE4sNf0TuUOXaa69NduG+8sorLFy4MGX7ww8/nAFVA8OZUkj9uCkUo5lhGQ/64osv9ig10dHRMRynGhEidgS36cPV2AmV3QusJrodVc6XQpHNdM+da2xsTNnW2trKP/7xj5GWNGBUvpci69gv8qU4OMMSsjnnnHN46623qK6uTq57//33ufTSS4fjdMNOwArEa3ztRc4vT65PdDuqnC+FYvQwadIkbrnlFiZPnkwwGOSDDz7oEQnLXlzYtppHVpFdCCHUhNppMiyu4bXXXmPPnj0p1bk7OjpGrfnqiAZw2/nk7OyEi1IjX860QqqgnEIxWvjc5z5HdXU1r7/+Oi6Xi2984xssWLAg07L6iYEzj6yaz0yRPQghkLZEItXUQv1kWMzX0qVLOeKII1LWffzxx8NxqhGhMxTGIJ+chggUeJPrNS2qJtVWKEYh48aN48ILL0wu19bWUlVVlUFFCsXoRWggrUTvo4p+9YchndtxwYIFLF68uIfxApg5c+ZQnWrECYWj5AF61AJPl9FKzOsopfpjUyiymT/+8Y+cdtppFBYWsmLFCqLRaMr2HTt28NOf/jRD6hSK0Y0QJIOxQle/h/1hyMzXpEmTuPjii4fqcFlFLGohpY2ug210xVQ1zVRTCykUo4BQKIRlWQghCIfDlJaWJtMipJS0trYO6fmCwSB+v8rNUhwaJFK9JCrhvr8MmfkqLy/vc/vatWs58cQTh+p0I4odEVhmCAo93aYWUpEvhWK00L3A84UXXtijvWpoaOj3sSKRCE899RRTp05l7969TJ48mWOOOYYHHniADRs2oGka119/PVOnTh0y/QpFNiO0eMI9QuV89ZMhM19vvvkm27dv73WblJJdu3aNWvMlYgYi0AmF3uTUQuBEvpwyE+qvTaEYLfR2o7hjx45+z6G5bt06AoEAJ5xwApFIhHvvvZeSkhIKCwu55557+pyVIBaLpdRzE0Lg8/mSr/tCJIs7Z9fNntKVHmNRl9A0BAKkQNe1If1sY/F6wRCaL7/ff8DGy7Ztmpubh+pUI04V1fg+2o4o8aWsF8JS3Y6KUU9TUxMlJSWZlgE4EajhmEj8f/7nf1izZk2f+zz22GP9Otb06dN55JFHWLNmDe3t7Zx99tns2rWLzZs3c9VVV3HRRRdx5pln9vreJ598kpUrVyaXp0yZwvLly9P6zJWVlf3edyRRutJjLOmyLJt2dxAJ5Bf5MFxDPwhtLF0vGELzdfTRR3PZZZcdcPv69euH6lQjjhUB/54gHJ6Xsl4IE8vyqG5HRa+88sorXHrppfz7v/879fX1xGIxbr311pQSLP3Btm1uueUWKioqePHFF1m0aBHHHHMMy5Yt4wc/+AE+n4+PPvqIZcuWccwxxwDwxhtv8Mc//pGpU6eyadMmnnzySXbs2NGj+PGOHTv46KOP+NKXvkRrayt/+ctfWLZs2YjeZW7YsIGHH36Y5cuXEw6HeeaZZ/jSl740pOc45phjWLRoUa8TlUspeeutt/p9rOLiYq644gp+/etfU1JSwkknnURhYSFz586ltraWO++8kxkzZjB58uQe712yZAlnn312cjlxnRsaGg464bsQgsrKSurq6pAye0pNKF3pMRZ1SVsS7DABSSjqQhvCpPvRcr0Mw0jrJmrIzNeePXv63J74URiNTLHD+J/dQuzzp3RbK+ORLx0V+cp+bEsSDVuYBgf9kesvbq/eZyOTKNx51VVXAfCFL3yBl156qddph/rio48+oqGhgeXLl3PNNdfw0EMPcdpppwFwzTXXAM73b/HixTzxxBOEQiG++93vsnr16mSX1oEahV/84hcsX74cgMLCQhoaGvjb3/6WPH46BINB3njjDX7zm9/w6KOP9us9gUCA1157jUgkAsCECRN46aWX2LZt25DmTJ144ol9dgf2ZpQORF1dHS+//DL33XcfTz31FPfccw933HEHAFVVVSxatIg9e/b0ekyXy4XL5er1uP39YZFSZtWPUAKlKz3Gki5J13uc19mhayQYqK4hM1+mafLoo49y1lln9Xp3OZpx7+vECESJTcrttlaZr9FENGyxc8PQTnE16ag8vDn9+wp1dnbS2trK9u3b+dd//Vc6Ojq44oorWL9+PSUlJaxbt44f/ehHvPXWW1xzzTU88cQTrFixgltvvZWqqirefPNNHnzwQS677DLOP//8HscfN24c5557Lr/97W+JRCKcc845SeMFcP311/eIuL333nsUFRWlRLkuvvhifvSjHw3IfPn9fr74xS/yy1/+MrmusbGRF154gd27d5Ofn8/VV1+d8p5nnnmGxYsXs2nTpuS6k046iUceeYR///d/T1vDgehuvHbv3s3zzz+fNHymabJp0yZ+8Ytf9OtYn332WfK6nXvuubz00ktEo9HkOTo6OpgzZ86QaVcosh0hBEKo0Y7pMGTm69Zbbx2qQ2UdYl8Q6dGRpd1zviSapszXaMHt1Zl0VB6GYQxp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86VQZDvKeCkUimxi1Jiv6dOn88gjj7BmzRra29s5++yz2bVrF5s3b+aqq67ioosuSs6f1xuxWCxl+g4hBD6fD8M4+CVIJPm6XC6klAghECIf8GIYPoQY2ukU+sv+urIFpSs9lK706K5L18dG3mV/2qGB7DuSKF3poXSlR7brSlffqJrbcf369fz617+mpKSEG264gcLCQgBqa2u58847+e53v8vkyZN7fe/jjz/OypUrk8sLFizg+uuvHwHVCoVCoVAoFF2MmqocdXV1vPzyy9x3333MmjWLe+65J7mtqqqKRYsWsWfPngO+f8mSJfz2t79NPq644op+TxgcCoW4+eabCYVCg/4cQ4nSlR5KV3ooXdlFtn5upSs9lK70GKu6Ro35+uyzzygqKkIIwbnnnktra2vKEPiOjg6mTZt2wPe7XC78fn/Kw+XqX3ehlJLt27dnVdcLKF3ponSlh9KVXWTr51a60kPpSo+xqis7O1F74bjjjmPDhg2sWbMG0zS54IILuOOOO6ioqODYY49lxowZqm6PQqFQKBSKrGfUmC+Xy8XXvva1lHWnnHJKhtQoFAqFQqFQDIxR0+2YSVwuF+eff36/uylHCqUrPZSu9FC6sots/dxKV3ooXekxVnWNqtGOCoVCoVAoFKMdFflSKBQKhUKhGEGU+VIoFAqFQqEYQZT5UigUCoVCoRhBlPkaA3R2dmZaAoFAgPr6+kzL6EFfuoLB4AirGd2o66U4GKotOjCqLRo6xsL1GjWlJjKBlJInnniCCRMmsGfPHubOncv48eMzLQtwJhpfsWIFACeddBIXXXRRxrTs2bOH++67j7POOovy8nLq6+tZvXo1NTU1bN++naVLl2ZkXq79dQE88MADbNiwAU3TuP7665k6deqIaopGozz44INs3boV27a57rrr8Hq9Gb9evemaOHFixq8XOPOy/vGPf6S2tpaWlhZuuukmGhsbee+995g4cSJ79+5lyZIlI65rJFFtUf9QbVH/UW1Regx5OyQVB+SVV16Rv//976WUUnZ2dsrvf//7GVbUxf333y9bWloyLSPJz3/+c/m3v/1NSinlbbfdJvfs2SOllPL555+XzzzzTFbo2r17t3z00UdlJBLJmJ7XX39ddnZ2SimlfOyxx+Tdd9+dFderN13ZcL2klHLHjh1JDStWrJBr166VN9xwgwwGg1JK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",
      "text/plain": [
       "<Figure size 687.634x401.389 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(2,2)\n",
    "ax = np.ravel(ax)\n",
    "\n",
    "for param in params:\n",
    "    plot_training_stats(ax, keys, param['result'], color = param['color'], label = param['label'])\n",
    "\n",
    "# Specify axes\n",
    "## Train Acc\n",
    "ax[0].set_ylabel('Train Accuracy [%]')\n",
    "ax[0].set_xlabel('Epoch')\n",
    "ax[0].set_ylim(85, 101)\n",
    "## Validation Acc\n",
    "ax[1].set_ylabel('Validation Accuracy [%]')\n",
    "ax[1].set_xlabel('Epoch')\n",
    "## L1-Norm\n",
    "ax[2].set_ylabel('$\\ell_1$-Norm')\n",
    "ax[2].set_xlabel('Epoch')\n",
    "## Sparsity\n",
    "ax[3].set_ylabel('Non-Zero Entries [%]')\n",
    "ax[3].set_xlabel('Epoch');\n",
    "\n",
    "# Legend\n",
    "handles, labels = ax[0].get_legend_handles_labels()\n",
    "ax[0].legend(handles, labels, loc='best',frameon=1,prop={'size': 7}, ncol = 1)\n",
    "\n",
    "# Adjust size\n",
    "width = 5.50107/0.8\n",
    "height = 8.02778/(2.0)\n",
    "fig.set_size_inches(width, height)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.8"
  },
  "vscode": {
   "interpreter": {
    "hash": "07cecbd58096559357ff47686066ecdb82e32493890ce712e45aa4f3fdd673c4"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
